from haystack import indexes

from .models import SKU


class SKUIndex(indexes.SearchIndex, indexes.Indexable):
    """
     SKU索引数据模型类
    """
    # 其中text字段我们声明为document = True，
    # 表名该字段是主要进行关键字查询的字段，
    # 该字段的索引值可以由多个数据库模型类字段组成，
    # 具体由哪些模型类字段组成，
    # 我们用use_template = True表示后续通过模板来指明。
    text = indexes.CharField(document=True, use_template=True)

    def get_model(self):
        """
        返回建立 的索引模型类
        :return:
        """
        return SKU

    def index_queryset(self, using=None):
        """
        返回要建立的索引数据查询集(过滤)
        :param using:
        :return:
        """
        # is_launched = True表示上架商品
        return self.get_model().objects.filter(is_launched=True)
